home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / LIBRARY / PAS_0793 / RMEGANUM.PAS < prev    next >
Pascal/Delphi Source File  |  1993-08-01  |  1KB  |  40 lines

  1. {─ Fido Pascal Conference ────────────────────────────────────────────── PASCAL ─
  2. Msg  : 514 of 517
  3. From : Jason Dyer                          1:300/15.0           07 Jul 93  09:07
  4. To   : All
  5. Subj : MEGA to Decimal
  6. ────────────────────────────────────────────────────────────────────────────────
  7. I guess I'll contribute my two bits...this version is easier to understand
  8. and avoids assembly. It's also MUCH shorter...took me about 10 minutes to
  9. write.}
  10.  
  11. program ReadMegaNum;
  12. uses Crt;
  13. const Place: array[1..5] of LongInt = (1,36,1296,46656,1679616);
  14.       Seq = ('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ');
  15. var Loop: Integer;
  16.     SSS: string;
  17.     Ch: char;
  18.     Leave: boolean;
  19. function Convert(SS: string): LongInt;
  20. var PrLoop, Counter: Integer;
  21.     CA, Tag: Longint;
  22. begin
  23.   Counter:=0; CA:=0;
  24.   For PrLoop:=Length(SS) downto 1 do begin
  25.     Counter:=Counter+1;
  26.     Tag:=Pos(SS[PrLoop],Seq)-1;
  27.     CA:=CA+(Tag*Place[Counter]);
  28.   end;
  29.   Convert:=CA;
  30. end;
  31. begin
  32.   ClrScr; Leave:=False;
  33.   repeat
  34.     Write('Enter number to convert: '); Readln(SSS);
  35.     Writeln(Convert(SSS));
  36.     Writeln('Do another (Y/N)?');
  37.     repeat Ch:=ReadKey; Ch:=Upcase(Ch); until (Ch='Y') or (Ch='N');
  38.     If Ch='N' then Leave:=True;
  39.   until Leave;
  40. end.